//
//  ZTNumberConvert.h
//  ZHYYTool
//
//  Created by MT-SW-005 on 2021/9/17.
//  Copyright © 2021 MT-SW-005. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ZTNumberConvert : NSObject
/* 数值之间转换，一般不会出错，
*  如果是字符串和数值进行互转，
* 十六进制和字符串互转一般不会出错
* 如果是二进制和字符串，十六进制相互转换，由于数值超界，可能会出现错误。
*/

/* 计算字节长度*/
+(NSInteger) computeStringLength:(NSString *) string;
 

/* 字符串转换为二进制*/
+(NSString *)stingToBinary:(NSString *)string;


/* 字符串转换为十六进制*/
+ (NSString *)stringtoHex:(NSString *)string;
 

/* 十六进制转换为字符串*/
+ (NSString *)hexToString:(NSString *)hexString;
 

/*十六进制转换为二进制*/
+ (NSString *)hexToBinary:(NSString *)hex;
 

/* 二进制转换为十六进制*/
+ (NSString *)binaryToHex:(NSString*)binaryString;
 

/* 十进制转换为十六进制*/
+ (NSString *)decimalSystemToHex:(int64_t)tmpid;


/*
*  十六进制转换十进制,可以接受的十六进制格式为:"0X7b"
*/
+ (int) hexStrToInt:(NSString*)hexStr;


/* 十六进制转换为十进制 ,格式:"7b2c3d"*/
+ (NSString *)hexToDecimalSystem:(NSString*)hex;


/*
 * 十六进制转换十进制 可以接受的十六进制格式为:"7B","7b","0X7b"
 */
+(NSString*)hexToDecimalSystem2:(NSString *)hex;


/*八进制转换为十进制*/
+(NSString*)octalToDecimalSystem:(NSString *)octal;


/*十进制转换为八进制 */
+ (NSString *)decimalSystemToOctal:(int64_t)tmpid;


/*十进制转换为二进制 */
+ (NSString *)decimalSystemToBinary:(NSString *)decimal;
 

/* 二进制转换为十进制*/
+ (NSString *)binaryToDecimalSystem:(NSString *)binary;
 

/* 把十进制转换为补码对应的十进制*/
+ (NSMutableDictionary*) complementConvertWithNumber:(int)number;


/* 把补码转换为对应原码的十进制*/
+(NSMutableString *)convertComplementToint:(NSMutableArray *)binary;


/* 数字转换为百分百*/
+ (NSString*)numberTopercentage:(NSString *)num withDenominator:(float)denominator;


/*  百分百转换为数字*/
+ (NSString *)percentageToNumber:(NSString*)percentageStr withDenominator:(float)denominator;


/*数值转换为补码对应的数  511-->65025*/
+(NSMutableString*) conversionNum:(NSString *)decNum;


/* 把数字转换为对应补码的数字* 65025-->511 */
+ (NSString *)conversionNum2:(NSString*)decNum;

@end

NS_ASSUME_NONNULL_END
